package com.chatroom.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.*;

@Configuration
//不仅配置了websocket还配置了基于代理的STOMP消息；
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
//在服务端上注册一个stomp端口，来接受客户端连接，同时为不支持websocket的网站提供SockJS支持
    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry){
//        添加一个/ws端点，客户端可以通过这个端点来进行连接
//        加上withSockJS()后可以通过，http://localhost:8080/ws来和服务器连接
        registry.addEndpoint("/ws").withSockJS();
    }
/**
 配置信息代理
 **/
    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry){
//       以“/app”开头的消息是客户端给服务端发送信息,应该从路由交到消息处理方法
        registry.setApplicationDestinationPrefixes("/app");
//        服务端给客户端发送信息，应该由该路由交到消息代理，消息代理向订阅特定主题的所有连接客户端广播消息
        registry.enableSimpleBroker("/topic");
    }

}
